// 全局 JS，程序入口文件

import React, { Component } from "react";
import { Provider, connect } from "react-redux";
import Taro, { useLaunch, useDidShow } from "@tarojs/taro";
import { userLogin } from './http/Api/userApi'

import configStore from "./store";
// import "taro-ui/dist/style/index.scss"; // 引入组件样式
// import "taro-ui/dist/style/components/button.scss"; // 按需引入
import "./app.scss";

const store = configStore();

class App extends Component {
  // 支持 React 生命周期和 小程序生命周期
  componentDidMount() { }

  componentDidShow() { }

  componentDidHide() { }

  componentDidCatchError() { }

  // 小程序的生命周期
  onLaunch(options) {
    console.log("应用启动", options);

    // 获取 code
    Taro.login({
      success(res) {
        console.log("获取登录凭证：", res);

        // 向后端服务器请求
        userLogin(res.code)
          .then((resC) => {
            console.log(resC.data);
            store.dispatch({
              type: "LOGIN",
              payload: {
                openid: resC.data.data.openid,
              },
            });
          })
          .catch(err => {
            console.log('登录请求失败：', err);
          })
      },
    });
  }

  // 在 App 类中的 render() 函数没有实际作用
  // 请勿修改此函数
  render() {
    return <Provider store={store}>{this.props.children}</Provider>;
  }
}

// function App({ children }) {
//   console.log('useLaunch', useLaunch);
//   console.dir(useLaunch);

//   useDidShow(() => {
//     console.log('useDidShow')
//   })
//   // useLaunch(() => {
//   //   console.log('onLaunch')
//   // })

//   return (
//     <Provider store={store}>
//       {children}
//     </Provider>
//   )
// }

export default App;
